/*
File: MainMenuState.h
Author: Zachary Murray
Purpose: State for the main menu
*/

#pragma once

#include "IGameState.h"
#include "../SGD Wrappers/SGD_Declarations.h"
#include "../SGD Wrappers/SGD_Geometry.h"
#include "../SGD Wrappers/SGD_Handle.h"

class Menu;
class MenuCursor;

class MainMenuState : public IGameState
{
public:
	//Singleton accessor
	static MainMenuState* GetInstance();

	//IGameStateInterface
	virtual void Enter() override; //load resources
	virtual void Exit() override; //unload resources
	virtual bool Input() override; //handle user input
	virtual void Update(float elapsedTime) override; //update entities
	virtual void Render() override; //render entities/menu items

private:
	MainMenuState() = default;
	virtual ~MainMenuState() = default;
	MainMenuState(const MainMenuState&) = delete;
	MainMenuState& operator=(const MainMenuState&) = delete;

	Menu* menu = nullptr;
	MenuCursor* cursor = nullptr;
	int cursPos = 0;
	int sfxV = 100;
	int musV = 100;
	//SGD Handles
	SGD::HTexture logo = SGD::INVALID_HANDLE;
	SGD::HTexture background = SGD::INVALID_HANDLE;
	bool mouseInput = false;
};

